#define _XOPEN_SOURCE 500

typedef struct ListaConfig
{
    char* clave;
    char* valor;	
    struct ListaConfig* next;
}ListConfig;


typedef struct
{
	char datosSector[512];
}simpleSector;

typedef struct fullSector
{
    int idSector;
	char datosSector[512];
}Sector;

typedef struct dosSectoresConId
{
    Sector secA;
	Sector secB;
}FullSectors;

typedef struct dosSectoresSinId
{
    char datosSectorA[512];
	char datosSectorB[512];
}BasicSectors;

typedef struct valoresCHS
{
	int cabezal;
	int cilindros;
	int sectores;
}chs;

typedef struct infoClientes
{
	int socketFSS;
	int socketClienteSHELL;
}iClientes;


typedef struct ListaIDdescriptors 
{
	char sDescriptorID_delPedido[20];
	char sSocketPorElCualResponder[20]; 
	int sector;
	char data[512];	
	int operacion; 
	char discoASinc[20];
	struct ListaIDdescriptors * Sgt;
	struct ListaIDdescriptors * Ant;
} __attribute__ ((packed)) listaIDDescriptors;
	

typedef struct SectoresIntermedios
{
	int *ptrSectoresLeidos;
	double tiempoDeAcceso;
	int tamanioVector;
}sectoresIntermedios;

typedef struct Informacion_IPC
{
	long payLoadLength;
	short payLoadDescriptor;
	char descriptorID[16];
	char *payload;
} InfoIPC;


typedef struct Colas
{
	listaIDDescriptors* cabeza;
	listaIDDescriptors* cola;
} colas;

typedef struct Colas2
{
	listaIDDescriptors* activacabeza;
	listaIDDescriptors* activacola;
	listaIDDescriptors* pasivacabeza;
	listaIDDescriptors* pasivacola;
} colas2;

typedef struct ListaPFS {
	int iSocket;
	int flag_cerrar;
	struct ListaPFS *Sgt;
} listaPFS;
